September 14, 2017

Goal of this talk

  • Convince you to consider investing in large scale lab based performance analysis.
  • Dig into some data.

Objective of this analysis.

  • Find Chrome and Website bugs based on new insight.
  • Understand Page Load performance at scale.
  • Identify weaknesses in our metrics.

Gathering Data

  • Load the Alexa top 10k on Nexus 5's.
  • Simulate 3G network.
  • Both warm & cold Page loads.
  • Reasonably detailed main thread attribution.

Overall Distribution

Why is consistently interactive so multi-modal?

Time To Consistently Interactive

Time To Consistently Interactive

Quantiles

Time To Consistently Interactive

Normalized by quantiles

Per Second

What's with the weird dip in warm wall clock time?

Next Steps: Elimate Other

Slice Title: Total self time in ms across top 10k pages
LocalFrameView::performLayout :  77859682.3385
TaskQueueManager::RunTask :  45631790.6605
Document::recalcStyle :  42088368.0356
Document::rebuildLayoutTree :  23380524.8535
LocalFrameView::prePaint :  22698465.596
WebURLLoaderImpl::loadSynchronously :  19509370.842
ProxyMain::BeginMainFrame::commit :  16127438.698

Next Steps: Elimate Other

  • We need some better ways to keep trace event renaming from breaking metrics.
  • Contribute by adding your slices to the user friendly category driver..

Next Steps: Improved Breakdowns

  • blocked_on_network should split out by type of resource.
  • Can script_execute be split out via runtimeCallStats?
  • Filter out 404s - maybe pick a better pageset?
  • ???

Next Steps: Crazy Ideas

  • Label sites by framework.
  • Gather memory data as well.
  • Do the same thing, but for input.